home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: rec.games.programmer
- From: jang@ecf.toronto.edu (JANG HIN LANG)
- Subject: AI Learning Algorithms
- Date: Wed, 30 Nov 1994 22:45:40 GMT
-
- I do not believe anyone discussed, in detail, on how to apply
- basic principles of articificial intelligence, neural computing
- and machine learning into computer games. In using the
- outdated Kohonen Algorithm (explained below) we can simulate
- an intelligent computer opponent that can learn from its
- mistakes.
-
-
- For the interested few, here in my treatment on the subject.
-
-
- ---
-
-
- The least sophisticated of AI algorithms simluates the function
- of the biological neuron. First proposed four decades ago, the
- outline of the basic model is as follows
-
-
-
- dendrite |------------|
- (input) -----------------O | |
- | cell body | O---------------
- | | axon (output)
- (input) -----------------O | |
- |------------|
-
- where O is a synapse.
-
- The synapse is not an actual physical linkage; instead it is a
- temporary chemical one that can vary over time. To represent
- these variable connections in our computer model we assign a
- multiplicative weight to each input pathway. A high weight
- term denotes a favourable connection. The cell body contains
- a predefined value known as the threshold. An output signal
- wll be produced if the input to the neuron is greater than
- the threshold value.
-
- We now require a mechanism that allows us the simulate learning
- in our perceptrons.
-
- In biological systems, the process of learning is thought to
- involve modifications in the effective coupling between neurons.
- In our computer model, we make small adjustments to the weights.
- To appreciate what this means, consider this learning paradigm:
-
- - set the weights w and thresholds t of perceptrons to
- random values
-
- - present the input x(0), x(1), x(2), ...., x(n-1)
-
- - calculate the actual output by comparing the threshold
- value and the weighted sum of the input
-
-
- n - 1
- -----
- weighted sum = \ w(i) * x(i)
- /
- -----
- i = 0
-
- - alter the weights to reinforce correct decisions and
- discourage incorrect decisions.
-
-
- Adaptation of the learning paradigm lead to the development of
- the Kohonen Network Algorithm, named after Professor T. Kohonen
- of the Faculty of Information Sciences at the University of
- Helsinki, Finland. Instead of comparing input values to thresholds,
- (as in the case with perceptrons) Kohonen compared the weights of
- all output nodes and picked the set of nodes having weights that
- closely matched the magnitude of the input signal.
-
-
- NOTE: ---> the following algorithm may not be appropriate for
- your particular application in terms of space
- and time efficiency. If you require information
- regarding optimised AI learning algorithms consult
- this reference:
-
- Kaelbling, Leslie Pack
- Learning in Embedded Systems
- The MIT Press, Cambridge, Massachusetts
- (c) 1993
- ISBN 0-262-11174-8
-
-
- The self-organising network consists of a matrix of output nodes j
- all of which are connected to every input node i.
-
-
- ----------------
- \ O O O \
- \ \
- output nodes j \ O O O \
- \ \
- \ O O O \
- ----------------
-
-
-
- input nodes i O O
-
-
- The algorithm determines the "winning" node j* that closely matches
- the expected output as determined by the set of input nodes i.
- Modifying the weights of j* and its neighbours will produce a
- set of desired outcomes.
-
- Kohonen successfully implemented this technique for a speech
- recognition system in the mid 1980's.
-
- -------------------------
- KOHONEN NETWORK ALGORITHM
- -------------------------
-
-
- 1. Initialise network
- - define w(ij) (0 <= i <= n-1) to be the weight from input
- node i to output node j. Set the weights from the n
- inputs to some small values. Set the initial radius
- of the neighbourhood around node j, N(j), to some large
- value.
-
- 2. Present input
- - present input x(0), x(1), x(2), .... , x(n-1) where x(i)
- is the input to node i.
-
- 3. Calculate distance
- - compute distance d(j) between input node i and each output
- node j as in
-
-
- n - 1
- -----
- d(j) = \ (x(i) - w(ij))^2
- /
- -----
- i = 0
-
- 4. Select minimum distance and denote output node j with minimum d(j)
- to be j*.
-
- 5. Update weights
- - update weight for node j* and its neighbours as defined by
- the extent of boundary N(j).
-
-
- w(ij) = w(ij) + M * (x(i) - w(ij))
-
- The M term is used to control the rate of weight adjustment.
- This value should be set in the range [0.5, 1] and then
- gradually decreased in accordance to a linear function as
- the number of learning cycles increases.
-
- 6. If the expected solution set has not been found, repeat the
- learning cycle (steps 2-5).
-
- 7. The solution set S of the network is now a counter-strategy tactic
- that a computer opponent can use against the player.
-
- If, for example, the network consists of 16 output nodes, four input
- nodes and minimum neighbourhood size of four, the Kohonen Algorithm
- can develop 216 (9 * 4!) unique strategy tactics. Provided that
- the network has been trained well, the computer opponent will be
- rather challenging.
-
-
-
- --------------------------------------------------------------------
-
-
-
-
-